// es6 class ，让js更像 c++ java 等大型面向对象语言，拥有完整的传统面向对象编程能力
class Dog {
    constructor(name, breed) {
        this.name = name;
        this.breed = breed;
    }
    static info() {
        console.log('类的静态方法，不去对象实例里头哟');
    }
    // 对象内部的 get/set 操作，形式是 方法，本质是 读写
    set nicknames(value) {
        this.nick = value.trim()
    }
    get description() { // description 读取属性
        return `${this.name} is a ${this.breed} type of dog`;
    }
    get nicknames() {
        return this.nick.toUpperCase();
    }
}

Dog.info();
const sunny = new Dog('Sunny', 'MAGA');
console.log(sunny.description);
sunny.nicknames = 'pUpY';
console.log(sunny.nicknames);